package com.arpa.oms.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * OMS销售退货单DTO
 * </p>
 *
 * @author LEO
 * @since 2020-11-17
 */
@Data
@ApiModel(value="OmsSaleReturnVO对象", description="OMS销售退货单")
public class OmsSaleReturnVO implements Serializable {


    @ApiModelProperty(value = "采购退货单号")
    private String code;

    @ApiModelProperty(value = "仓库code")
    private String warehouseCode;

    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    @ApiModelProperty(value = "货主code")
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称")
    private String shipmentName;

    @ApiModelProperty(value = "所属机构标识")
    private String groupCode;

    @ApiModelProperty(value = "客户标识")
    private String customerCode;

    @ApiModelProperty(value = "客户名称")
    private String customerName;

    @ApiModelProperty(value = "销售单号")
    private String sourceCode;

    @ApiModelProperty(value = "单据类型")
    private String type;

    @ApiModelProperty(value = "单据类型名称")
    private String typeText;

    @ApiModelProperty(value = "计划退货数量（退货单位）")
    private BigDecimal planQuantity;

    @ApiModelProperty(value = "实退货购数量（退货单位）")
    private BigDecimal actualQuantity;

    @ApiModelProperty(value = "计划退货数量（基本单位）")
    private BigDecimal planBasicQuantity;

    @ApiModelProperty(value = "实退货购数量（基本单位）")
    private BigDecimal actualBasicQuantity;

    @ApiModelProperty(value = "状态：新增、作废、待审核、审核通过、审核不通过")
    private String status;

    @ApiModelProperty(value = "状态 名称")
    private String statusText;

    @ApiModelProperty(value = "审核意见")
    private String verifyOpinion;

    @ApiModelProperty(value = "审核时间")
    private LocalDateTime gmtVerify;

    @ApiModelProperty(value = "审核人")
    private String verifyBy;

    @ApiModelProperty(value = "审核人姓名")
    private String verifyName;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "总数")
    private Long total;

    @ApiModelProperty(value = "创建人")
    private String createdBy;

    @ApiModelProperty(value = "创建人")
    private String createdName;

    @ApiModelProperty(value = "创建人")
    private String modifiedBy;

    @ApiModelProperty(value = "修改人")
    private String modifiedName;

    @ApiModelProperty(value = "创建时间")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtCreated;

    @ApiModelProperty(value = "修改时间")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtModified;

    @ApiModelProperty(value = "子单明细")
    @TableField(exist = false)
    private List<OmsSaleReturnItemVO> saleReturnItemList = new ArrayList<>();
}
